////钻石继承问题
////汇聚子类(Z类)对象中包含多个公共基类（A类）子对象
//#include <iostream>
//using namespace std;
//
//class A {//公共基类
//public:
//	int m_a;
//};
//class X :public A {//中间子类
//public:
//	int m_x;
//};
//class Y :public A {//中间子类
//public:
//	int m_y;
//};
//class Z :public X, public Y {//汇聚子类
//public:
//	int m_z;
//	void foo() {
//		//m_a = 20;
//	}
//};
//int main(void) {
//	Z z;// |X中间子类对象|Y中间子类对象|m_z|-->|A公共基类子对象 m_x||A公共基类子对象 m_y | m_z|
//		//|m_a m_x|m_a m_y|m_z|
//	cout << "汇聚子类对象z的大小:" << sizeof(z) << endl;//20
//	//z.Y::m_a = 20;
//	return 0;
//}